<?php
class RecoveryController extends Controller
{
	public $defaultAction = 'recovery';
	
	public $registrationUrl = array("registration");
	public $recoveryUrl = array("recovery/recovery");
	public $loginUrl = array("/login");
	public $logoutUrl = array("/logout");
	public $profileUrl = array("/profile");
	public $returnUrl = array("/profile");
	public $returnLogoutUrl = array("/login");
	
	
	/**
	 * @return hash string.
	 */
	public static function encrypting($string="") {
		$hash = Yii::app()->getModule('user')->hash;
		if ($hash=="md5")
			return md5($string);
		if ($hash=="sha1")
			return sha1($string);
		else
			return hash($hash,$string);
	}
	
	/**
	 * Recovery password
	 */
	public function actionRecovery () {
		$form = new UserRecoveryForm;
		if (Yii::app()->user->id) {
		    	$this->redirect(Yii::app()->homeUrl);
		    } else {
				$email = ((isset($_GET['email']))?$_GET['email']:'');
				$activkey = ((isset($_GET['activkey']))?$_GET['activkey']:'');
				
				if ($email&&$activkey) {
					
					$form2 = new UserChangePassword;
		    		
					$find = TblUser::model()->findByAttributes(array('email'=>$email));
					
		    		if(isset($find)&&$find->activkey==$activkey) {
		    			
			    		if(isset($_POST['UserChangePassword'])) {
							$form2->attributes=$_POST['UserChangePassword'];
							
							if($form2->validate()) {
								$find->password = $form2->password;
								$find->activkey= $form2->password;
								$find->save();
								
								Yii::app()->user->setFlash('recoveryMessage','<p align="center">Nova senha foi salva.</p>'.
								'<p align="center">Você será direcionado à página inicial em alguns segundos, caso isso não ocorra <a href="'.'http://' . $_SERVER['HTTP_HOST'].Yii::app()->request->baseUrl .'/index.php">clique aqui</a></p>'.
        						'<meta http-equiv="refresh" content="8;url= http://'.$_SERVER['HTTP_HOST'].Yii::app()->request->baseUrl.'/index.php?r=site/login"/>');
								$this->redirect($this->recoveryUrl);
							}
						} 
						$this->render('changepassword',array('form'=>$form2));
		    		} else {
		    			Yii::app()->user->setFlash('recoveryMessage',"Link de recuperação de senha incorreto.");
						$this->redirect($this->recoveryUrl);
		    		}
		    	} else {
		    		
			    	if(isset($_POST['UserRecoveryForm'])) {
			    		$form->attributes=$_POST['UserRecoveryForm'];
			    		
			    		if($form->validate()) {
			    			$user = TblUser::model()->findbyPk($form->user_id);
							$activation_url = 'http://' . $_SERVER['HTTP_HOST'].Yii::app()->request->baseUrl .'/index.php?r=recovery/recovery&activkey='.$user->activkey.'&email='.$user->email;
							
							$subject = "Solicitação de Recuperação de senha no site ". Yii::app()->name;
			    			$messa = "<p>Você solicitou recuperação de senha no site ".Yii::app()->name."</p> <br/><p>Para receber a nova senha, acesse: </p><p>". $activation_url . "</p>";
							
							$message = new YiiMailMessage;
							
        					$message->view = "test";
               				$params = array('myMail' => $messa);
        					$message->subject = $subject;
        					$message->setBody($params, 'text/html');
        					$message->addTo($user->email);
        					$message->from = Yii::app()->params['adminEmail'];   
        					Yii::app()->mail->send($message); 
        					Yii::app()->user->setFlash('recoveryMessage','<p align="center">Um código de verificação foi enviado para o seu email.'. $user->email ."</p>".
        					'<p align="center">Você será direcionado à página inicial em alguns segundos, caso isso não ocorra <a href="'.'http://' . $_SERVER['HTTP_HOST'].Yii::app()->request->baseUrl .'/index.php">clique aqui</a></p>'.
        					'<meta http-equiv="refresh" content="8;url= http://'.$_SERVER['HTTP_HOST'].Yii::app()->request->baseUrl.'/index.php?r=site/login"/>');
			    		}
			    	}
		    		$this->render('recovery',array('form'=>$form));
		    	}
		    }
	}

}